package me.firstapp.service.shop;

import java.util.List;
import java.util.Map;

import me.firstapp.common.utils.Page;
import me.firstapp.module.shop.ProductSkuRelation;

public interface ProductSkuRelationService {

	/**
	 * 通过id查询属性商品
	 * 
	 * @param productSkuRelationId
	 * @param apiClientId
	 * @return
	 */
	ProductSkuRelation findProductSkuRelationById(Long productSkuRelationId, Long apiClientId);

	/**
	 * 新增属性商品
	 * 
	 * @param productId
	 * @param skuName1
	 * @param skuValue1
	 * @param skuName2
	 * @param skuValue2
	 * @param stock
	 * @param price
	 * @param apiClientId
	 * @return
	 */
	ProductSkuRelation addProductSkuRelation(Long productId, String skuName1, String skuValue1, String skuName2,
			String skuValue2, Integer stock, Double price, Long apiClientId);

	/**
	 * 更新属性商品
	 * 
	 * @param productSkuRelationId
	 * @param skuName1
	 * @param skuValue1
	 * @param skuName2
	 * @param skuValue2
	 * @param stock
	 * @param price
	 * @param apiClientId
	 * @return
	 */
	ProductSkuRelation updateProductSkuRelation(Long productSkuRelationId, String skuName1, String skuValue1,
			String skuName2, String skuValue2, Integer stock, Double price, Long apiClientId);

	/**
	 * 分页查询属性商品
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @param searchParams
	 * @param sortParam
	 * @param sortType
	 * @param apiClientId
	 * @return
	 */
	Page<ProductSkuRelation> findProductSkuRelationPage(Integer pageNo, Integer pageSize,
			Map<String, Object> searchParams, String sortParam, String sortType, Long apiClientId);

	/**
	 * 查询某商品下的属性商品
	 * 
	 * @param productId
	 * @param isDefault
	 * @param apiClientId
	 * @return
	 */
	List<ProductSkuRelation> findProductSkuRelationsByProductId(Long productId, Integer isDefault, Long apiClientId);

	/**
	 * 设置默认
	 * 
	 * @param productSkuRelationId
	 * @return
	 */
	ProductSkuRelation executeSetDefault(Long productSkuRelationId, Long apiClientId);

	/**
	 * 删除
	 * 
	 * @param ids
	 *            多个id时用","隔开
	 */
	void deleteProductSkuRelations(String ids, Long apiClientId);
}
